好的,包含上一篇你應該已經看到我提了兩次String.Format,所以到底什麼是String.Format?
簡單來說就是跟字面上的意思一樣,用來處理字串的格式,或是根據指定的格式將物件的值轉換為字串,並將它們插入到另一個字串的方法。
你可以透過String.Format建立格式字串、控制字串格式、自訂字串格式...等
以下介紹一些常用的地方:
開頭為格式字串, 後面接著一個或多個物件或運算式, 會轉換成字串後插入格式字串中的指定位置。
int amount = 14;
String s = String.Format("這是今年吃的第{0}顆柚子",amount);
Console.WriteLine(s);
//這裡會輸出這是今年吃的第14顆柚子
{0}是代表後方第一個物件(參數)的索引值,索引值從0開始。{1}就是代表後方第二個物件(參數)的意思。如果要插入的物件不是字串, 則會呼叫ToString的方法, 將它轉換成字串, 然後將它插入結果字串中。我說吃這麼多柚子真的好嗎(欸)
這個寫法是不是很眼熟?是的,在這篇文章中有提到,Console.WriteLine已經將String.Format整合在overload裡面,所以Console.Write()、Console.WriteLine()也可以直接這樣用唷~
C#6中新增String Interpolation功能,也就是好棒棒的$字號!!!(閃亮亮)
能進一步簡化string.Format的寫法。
所以上面那一段可以改寫為
int amount = 14;
String s = $"這是今年吃的第{amount}顆柚子";
Console.WriteLine(s);
//這裡會輸出這是今年吃的第14顆柚子
最簡寫法為:
int amount = 14;
Console.WriteLine($"這是今年吃的第{amount}顆柚子");
是不是很清爽又直覺呢=ˇ=
插入字串這個方式是字串中的格式專案。格式專案語法:
{index,alignment:formatString}
{1,15:C3}--->表示取第2個參數值,字元長度15,小數3位,加錢幣符號,靠右
一個大括號裡面就包含了這麼多密碼,484 magic!!!!!XD
寫在alignment的位置。
{0,12}代表插入12個字元的字串,寬度12個字元的意思。預設靠右對齊。如果第一個物件的字串表示長度超過12個字元, 則會忽略寬度, 並將整個字串插入結果字串中。
預設靠右對齊:
因為超過6個位元,所以忽略6這個寬度限制:
寫在alignment的位置。若要將欄位中的字串靠左對齊, 可以在欄位寬度前面加上負號,如:{0,-12}
加上負號,靠左對齊
寫在formatString的位置。
可以在格式專案中的索引後面加上格式字串, 以控制物件的格式化方式。例如{0:d}會將 "d"格式字串套用至物件清單中的第一個物件。
標準輸出格式如下:
資料來源參考:https://dotblogs.com.tw/marcus116/2012/03/11/70655
當然很多時候我們會希望輸出我們自訂的格式~
日期與時間類
資料來源參考:https://dotblogs.com.tw/marcus116/2012/03/11/70655
知道怎麼自訂格式之後,輸出的結果是不是覺得更能掌控了呢XD
更多String.Format的部分可以參考官方文件喔~
MSDN-String.Format Method
m@rcus學習筆記-string.Format格式整理
阿沙布魯-朝風呂-自訂數值格式字串簡述
Neil(After Work)-C# string.Format() 自訂數值格式
$-字串插補C#(參考)